package com.quad.innovators.salesease.service.stock;

import com.baomidou.mybatisplus.extension.service.IService;
import com.quad.innovators.salesease.common.result.PageResultBean;
import com.quad.innovators.salesease.common.result.Result;
import com.quad.innovators.salesease.model.dto.ProductArrivalDetailNumber;
import com.quad.innovators.salesease.model.entity.stock.ProductInfoIdentity;
import com.quad.innovators.salesease.model.query.stock.ProductInfoIdentityPageGroupQuery;
import com.quad.innovators.salesease.model.query.stock.ProductInfoIdentityPageQuery;
import com.quad.innovators.salesease.model.query.warehouse.ArrivalOrderPageQuery;
import com.quad.innovators.salesease.model.vo.stock.ProductInfoDetailVO;
import com.quad.innovators.salesease.model.vo.stock.ProductInfoIdentityGroupVO;
import com.quad.innovators.salesease.model.vo.stock.ProductInfoIdentityVO;
import com.quad.innovators.salesease.model.vo.warehouse.ArrivalOrderVO;

import java.util.List;
import java.util.Set;

/**
 * @author : shanshan.li
 * @createTime : 2025/3/28 11:07
 * @Version : 1.0 
 */
public interface ProductInfoIdentityService extends IService<ProductInfoIdentity> {

    /**
     * 产品列表信息
     * @param queryParams 分页查询参数
     * @return 返回分页列表查询结果
     */
    PageResultBean<ProductInfoIdentityVO> listPage(ProductInfoIdentityPageQuery queryParams);

    /**
     * 批量插入产品身份信息
     * @param productInfoIdentityList 产品身份信息列表
     * @return 返回是否成功
     */
    boolean batchInsert(List<ProductInfoIdentity> productInfoIdentityList);

    /**
     * 产品聚合列表信息
     * @param queryParams 分页查询参数
     * @return 返回分页聚合列表查询结果
     */
    List<ProductInfoIdentityGroupVO> listPageGroup(ProductInfoIdentityPageGroupQuery queryParams);


    /**
     * 获取包装码或产品码信息
     * @param packingOrIdentityCode 包装码或产品码
     * @return 返回
     */
    ProductInfoDetailVO getPackIngOrIdentityCode(String packingOrIdentityCode);
}
